home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / wwcp120.zip / WWCP.DOC < prev    next >
Text File  |  1992-05-06  |  38KB  |  839 lines

  1.                  Documentation for Waffle to WWIV Copy (WWCP)
  2.                       Copyright 1992 by Anthony W. Hursh
  3.  
  4. *****************THE WWSTAT FORMAT HAS BEEN CHANGED*************************
  5.  
  6. Many new features have been added to this version, and the format of
  7. the WWSTAT file HAS BEEN CHANGED. You MUST edit your WWSTAT file. See
  8. CHANGES.DOC for an overview.
  9.  
  10.  
  11.                               LIMITED WARRANTY
  12.  
  13.  
  14.         THIS SOFTWARE IS PROVIDED "AS-IS", WITHOUT WARRANTY OF ANY KIND.
  15. THERE ARE NO EXPRESS OR IMPLIED WARRANTIES. THERE ARE NO WARRANTIES OF
  16. OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  17.  
  18.  
  19.         THE COPYRIGHT HOLDER SHALL NOT IN ANY CASE BE LIABLE FOR SPECIAL,
  20. INCIDENTAL, CONSEQUENTIAL, INDIRECT OR OTHER SIMILAR DAMAGES ARISING FROM
  21. THE USE OF, OR THE INABILITY TO USE, THE SOFTWARE, EVEN IF THE COPYRIGHT
  22. HOLDER OR HIS AGENT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  23.  
  24.  
  25.                           OBLIGATORY BEGGING MESSAGE
  26.  
  27.  
  28.         WWCP is a shareware program. If you wish to continue using it
  29. after a trial period of two weeks (beginning from the time you make your
  30. first connect to the WWIVnet), you are required to register your copy.
  31.  
  32.  
  33.         Consider this: WWCP took many hours to write and debug. I could've
  34. spent less time writing a kludge, but I don't work that way. I feel the
  35. extra time spent on making WWCP transparent to the users and easy for the
  36. system operator to install and maintain was well worth it. I've made an
  37. investment of around $1800 worth of my time. If I don't get my investment
  38. back (or at least a significant portion of it), I cannot continue to support
  39. the software, but must instead devote my time to more financially rewarding
  40. (and boring) projects (save me from writing COBOL! Please, please,
  41. pleeeeeeeeeeease! :-) To get full value for my time I need at least 72
  42. registered sites. Registration also gives you many other important benefits.
  43. See WWREG.DOC for information. Also see PRODUCTS.DOC for information on
  44. my other shareware programs.
  45.  
  46.  
  47.  
  48.                                WHAT IS WWCP?
  49.  
  50.  
  51.         The WWCP package allows you to exchange email between the
  52. WWIVnet and your Waffle BBS. WWIV netsubs can also be carrried as
  53. newsgroups on your Waffle system and vice-versa. The interface is totally
  54. invisible to the user. No kludges (such as manually adding special address
  55. lines to email or posts) are necessary. All routing is fully automatic.
  56.  
  57.  
  58.                                WHY WWCP?
  59.  
  60.  
  61.         There are many interesting netsubs (newsgroups, in Usenetspeak) on
  62. WWIVnet, and WWIV is a very popular system. There are more than a thousand
  63. sites on WWIVnet, and hundreds of thousands of users. Clearly, there is a
  64. niche for gateway software.
  65.  
  66.  
  67.                         WHAT YOU NEED TO RUN WWCP
  68.  
  69.  
  70.         There are a few extras you need to set up WWCP that aren't
  71. included in the distribution package. You need:
  72.  
  73.         1. An external file transfer protocol program. This
  74.            program should handle Xmodem, Ymodem, or Zmodem, with
  75.            Zmodem much preferred. The only real requirement is that
  76.            the program exit with status zero for a successful transfer
  77.            and non-zero for an unsuccessful one. Just about every
  78.            protocol program in common use fits this description.
  79.            If yours doesn't you can probably kludge it up with a
  80.            batch file and judicious use of the IF ERRORLEVEL
  81.            construct.
  82.  
  83.            You can also use the new HS/LINK bidirectional transfer
  84.            protocol. If your modem runs at the same speed in both
  85.            directions (full duplex), HS/LINK is a win. If you have
  86.            a modem that transfers more slowly in one direction than
  87.            the other (e.g., USR modems using USR's proprietary HST
  88.            protocol), HS/LINK won't gain you much. Most commonn
  89.            modems (other than the USR) will benefit from HS/LINK
  90.            and the USR Dual Standard modems will benefit as well,
  91.            if they're run in V.32 mode.
  92.  
  93.         2. A FOSSIL driver (OPUS!COMM was used for testing. The
  94.            Waffle docs recommend BNU. There are other ones around,
  95.            too.)
  96.  
  97.         3. The Waffle BBS software (obviously).
  98.  
  99.  
  100.         You also need the following hardware:
  101.  
  102.         1. An IBM compatible PC capable of running Waffle (again,
  103.            obviously).
  104.  
  105.         2. A reasonable modem. "Reasonable" means that the modem
  106.            understands Hayes commands, such as ATZ to reinitialize,
  107.            ATD to dial, <pause>+++<pause>ATH to hang up, etc.
  108.            The modem should also hang up when DTR is dropped.
  109.            If your modem doesn't fit these criteria, see the Waffle
  110.            documentation for suggestions (throwing it off a tall
  111.            building and buying another one is the preferred technique).
  112.  
  113.  
  114.                                   CREDITS
  115.  
  116.         Many thanks to my fearless team of beta testers:
  117.  
  118. Fred J. Polsky (WWIVnet: 1@502 WWIVnet, Internet: asfjp@acad2.alaska.edu)
  119. Roy M. Silvernail (WWIVnet: 1@503, Internet: cybrspc!roy@cs.umn.edu)
  120. Bryan Lockwood (WWIVnet: 1@501, Internet: system@coldbox.uucp Real Soon Now)
  121.  
  122. All three made many valuable suggestions and uncovered many potential
  123. problems. This madness would never have happened without them.
  124.  
  125.  
  126. Thanks are also due to:
  127.  
  128. Dan LeVaugh (WWIVnet: 1@9702)
  129.  
  130. for helping me through the process of getting WWCP recognized by WWIVnet
  131. and for volunteering to be the WWCP nodes coordinator.
  132.  
  133. Wayne Bell (WWIVnet: 1@1)
  134.  
  135. for writing WWIV and allowing WWCP sites to connect to the net.
  136.  
  137. Thomas E. Dell (Internet: dell@vox.darkside.com)
  138.  
  139. for writing Waffle in such a fashion that gateway software could
  140. easily be integrated. Well done, Mr. Dell.
  141.  
  142.  
  143.  
  144.  
  145.                          SETTING UP A WWIVNET CONNECT
  146.  
  147.  
  148. 1. First of all, you *need* a WWIVnet connect. Find a WWIV sysop in your
  149.    area who's willing to let you have a feed. If you can't find one
  150.    locally, check the net listings (available by typing //NET on any
  151.    WWIVnet board) for someone fairly close. Contact that person and ask
  152.    for a feed. If he's unwilling/unable to do it, try someone else.
  153.  
  154. 2. Now you need a node number on the WWIVnet. Call any WWIVnet board
  155.    and send email to 1@9702. He is the WWCP coordinator, and will assign
  156.    you a node number. Be patient. All WWIVnet coordinators are volunteers,
  157.    and may take a while to get back to you. Never forget that WWIVnet is
  158.    largely run by volunteers (just like Usenet). Common courtesy is *always*
  159.    in order. Tell 1@9702 the node number of the WWIVnet board you will
  160.    be connecting to. You should read the accompanying file RULES.DOC for an
  161.    overview of WWIVnet policies and regulations.
  162.  
  163. 3. Tell your connect to set up his networking files to *not* use WWIVnet
  164.    compression when connecting with you (WWIVnet uses a proprietary
  165.    compression library licensed from PKware, unfortunately. This version
  166.    of WWCP has hooks to allow use of Gregg Beasey's DECOMP program. As
  167.    soon as I receive my registered version of DECOMP, I will test it out
  168.    and make the proper information available. However, compression is
  169.    not yet supported, due to the fact that the shareware version of Gregg's
  170.    program has a 75 kilobyte limit on packet size. For now, though, there
  171.    is no direct support for compressed packets. Also, specify a password
  172.    that your system will use when calling the connect. This can be 1-15
  173.    characters. WWCP does not support the automated password exchange feature
  174.    of WWIV at the present time, hence you must arrange your password in
  175.    advance.
  176.  
  177.  
  178.                               INSTALLING WWCP
  179.  
  180. Fear not. If you've managed to survive installing Waffle, installing
  181. WWCP will be a snap. :-) If you have problems, refer to the TROUBLE.DOC
  182. included in the WWCP distribution package.
  183.  
  184. 1. Install the FOSSIL driver. Read the documentation for your particular
  185.    driver to see how to set it up.
  186.  
  187. 2. Put all the .EXE and .BAT files (wwcico.exe, wwrmail.exe, wwsmail.exe,
  188.    wwshell.bat and wwpoll.bat) in your waffle/bin directory.
  189.  
  190. 3. Put the WWSTAT and WWSEQ files in your waffle/system directory. These are
  191.    analogous to the Waffle STATIC and SEQF files, respectively.
  192.  
  193. 4. Edit the WWSTAT file to conform to your system. The lines must be in
  194.    the following order:
  195.  
  196. <name of your system>
  197.         The same as the "node" line in your system/static file.
  198.  
  199. <used for From: line on news. %s is replaced with WWIVnet address.>
  200. <used for From: line on mail. %s is replaced with WWIVnet address>
  201. <origin, used in Message-ID: header>
  202.  
  203.         These lines let you specify the From: line format for gated messages,
  204.         in a fashion analogous to the netnews and netmail parameters in the
  205.         Waffle static file. You can set a separate From: line for news and
  206.         mail, if you wish, or use the same for both. By default, both lines
  207.         are set to %s@wwiv in WWSTAT. This can be changed to anything you
  208.         want...... the person's WWIVnet address is substituted for the %s.
  209.         If you need an actual % in the address, use %%. Thus, the default
  210.         settings produce From: lines similar to:
  211.  
  212.         From: 23-9702@wwiv
  213.  
  214.         If you want to generate From: lines of the form:
  215.  
  216.         From: foobox!wwiv!23-9702@moskvax.cis.gov
  217.  
  218.         You'd use:
  219.  
  220.         foobox!wwiv!%s@moskvax.cis.gov
  221.  
  222.         in the WWSTAT file.
  223.  
  224.         If you have an actual domain site set up for wwiv, and want all
  225.         WWIVnet posts to appear to come from wwiv.yoyodyne.com, you'd use:
  226.  
  227.         %s@wwiv.yoyodyne.com
  228.  
  229.         in the WWSTAT file. If you're doing it this way, you'll also have to
  230.         add the line:
  231.  
  232.         wwiv.yoyodyne.com * /spool/wwiv/mail
  233.  
  234.         to your waffle/system/paths file.
  235.  
  236.         There's also an origin line in the WWSTAT file. This is used to
  237.         generate the Message-ID: header. These headers are in the form
  238.         (number)wwcp(node)@(origin), where (number) is an unsigned long,
  239.         (node) is your WWIVnet node number and origin is as set in your
  240.         WWSTAT file. This should be the domain name for your site
  241.         (foobox.hardknox.edu, bittybox.yoyodyne.com, etc.). If you don't
  242.         have one, use the domain .UUCP (foobox.UUCP, bittybox.UUCP, etc.).
  243.  
  244.         If you're going to be sending WWIVnet posts and email to the Usenet
  245.         directly from your system, you need to set all of these. If your
  246.         system doesn't get a Usenet newsfeed *through Usenet*, leave them
  247.         alone.
  248.  
  249. <your WWIVnet node number>
  250.  
  251. <your connect's WWIVnet node number>
  252.  
  253. <initialize FOSSIL>
  254.         Use 1 if you want the FOSSIL initialized before calling. Normally
  255.         this will be 1, but may need to be set to 0 for certain setups.
  256.  
  257. <port number>
  258.         This is the *FOSSIL* port number, which is normally 0 for COM1:, 1
  259.         for COM2:, etc.
  260.  
  261. <phone number>
  262.         This is the phone number for your connect. This should be the
  263.         *complete* dialing sequence for your modem, including any AT
  264.         commands. You can also put other commands in this line,
  265.         such as ATM0 to turn the speaker off, etc.
  266.  
  267. <password>
  268.         This is the password you've arranged with your connect.
  269.  
  270. <speed>
  271.         This is the speed to set the serial port to. If you use 0, the
  272.         port speed will be left as is. Supported speeds are 300, 600,
  273.         1200, 2400, 4800, 9600, 19200, and 38400 bps.
  274.  
  275. <use HS/LINK>
  276.         If you're using the HS/LINK protocol, set this to 1. Otherwise,
  277.         leave it alone. HSLINK.EXE must be in your PATH, and you must
  278.         set your DSZLOG environment variable if you're going to use
  279.         HS/LINK. See the HS/LINK documentation for more information.
  280.  
  281. <send protocol>
  282.         This is the command line to send data *to* your connect. The
  283.         file you need to send has a name of S<theirnumber>.NET. For
  284.         example, if you're connecting with 9702, you need to send the
  285.         file S9702.net.
  286.  
  287. <receive protocol>
  288.         The command line to receive data *from* your connect. The file
  289.         to receive has the name S<yournumber>.NET. If you are node 599,
  290.         you need to receive S599.NET. If you're using HS/LINK, anything
  291.         you put in this line is ignored, but make sure there *is*
  292.         a line.
  293.  
  294. <use compression>
  295.         Set this line to 1 to use WWIVnet compression, when that feature
  296.         becomes available (soon!). Until then, leave it 0.
  297.  
  298. <spool dir>
  299.         Your spool\wwiv\ directory (see below). The drive letter *must*
  300. be included, and the directory name should end with a \ character.
  301.  
  302.  
  303.         Any line beginning with a # character is treated as a comment,
  304. and processing resumes with the next line.
  305.  
  306. 5. Make a subdirectory called wwiv in your spool directory. This is used to
  307.    handle outgoing news for WWIVnet.
  308.  
  309. 6. Make a subdirectory called mail in the wwiv spool directory. This is used
  310.    to store outgoing mail for WWIVnet.
  311.  
  312. 7. Make a subdirectory called packets, also in the wwiv spool directory. This
  313.    is used to create and process net packets (analogous to batched news)
  314.    for WWIVnet.
  315.  
  316. 8. Add the line
  317.  
  318. wwiv /batch=wwiv wwiv.*
  319.  
  320. to your waffle/system/feeds file.
  321.  
  322. 9. Add the line:
  323.  
  324. wwiv * /spool/wwiv/mail
  325.  
  326. to your waffle/system/paths file. If you've set up a domain address for
  327. wwiv in your WWSTAT file, use that here too. For instance, if you've set
  328. up wwiv as wwiv.yoyodyne.com, put in:
  329.  
  330. wwiv.yoyodyne.com * /spool/wwiv/mail
  331.  
  332. If you haven't configured the From: lines in your WWSTAT file, or if
  333. you've used a bang path address there (foobox!wwiv!%s@some.site.com)
  334. then just use the:
  335.  
  336. wwiv * /spool/wwiv/mail
  337.  
  338. line.
  339.  
  340. 10. If you're going to be carrying WWIVnet netsubs (newsgroups) then load up
  341.    your system/static file. Add wwiv to the forums line. For instance,
  342.    if your forums line now reads:
  343.  
  344. forums       : local usenet
  345.  
  346. Then you'd change it to:
  347.  
  348. forums       : local usenet wwiv
  349.  
  350. See "Subscribing to WWIV Netsubs", below, for more information.
  351.  
  352.  
  353. 11. Set up your waffle/system/schedule file to run wwpoll periodically.
  354.     How often you want to do this is entirely up to you, and will depend
  355.     on the traffic volume, hours to get cheap phone rates, etc. You
  356.     can also run wwpoll manually if you wish. If you're using DOS 3.2
  357.     or below, you'll need to add the line:
  358.  
  359.     RUN
  360.  
  361.     to the end of wwpoll.bat.
  362.  
  363. 12. (optional) If your WWIVnet connect is going to be calling you, you need
  364.     to arrange an account for that system. Add the line:
  365.  
  366. IF ERRORLEVEL == 70 GOTO WW
  367.  
  368.     to your waffle/bin/run.bat file (in the section with the other similar
  369.     statements. Remember to keep the IF ERROLEVEL statements in reverse
  370.     numeric order), and at the bottom of run.bat (right before :END) add
  371.     the lines:
  372.  
  373. :WW
  374. CALL WWSHELL
  375. GOTO TOP
  376.  
  377.    If you're running DOS 3.2 or earlier, you'll have to use:
  378. :WW
  379. WWSHELL
  380.  
  381.    and put the line:
  382.  
  383. RUN
  384.  
  385.    at the end of the WWSHELL.BAT file. Now, go into admin and add a new
  386.    account for the WWIV board. Set it up just like a uucp connect
  387.    (access -2, etc.) but on the admin x screen set the shell to #exit 70
  388.    instead of the normal #exit 40 that you'd use for uucp. You can use other
  389.    numbers besides 70 for the IF ERRORLEVEL and #exit, of course. 70 is just
  390.    an example. Any number will work as long as it is the same in both places,
  391.    and as long as it isn't already used for something else. Your WWIVnet
  392.    connect will need to use a macro to dial in to your Waffle board and log
  393.    on. The details of this macro will vary, depending on how you have your
  394.    Waffle opening screens set up. If your Waffle login prompts are stock,
  395.    the following macro should work.
  396.  
  397. DEBUG ""
  398. TIMEOUT "30"
  399. BAUD "<baud rate to call at>"
  400. DIAL "<phone number of waffle board>"
  401. FAILURE "BUSY"
  402. WAITFOR "EW:"
  403. SEND "<wwiv board's login name>{"
  404. WAITFOR "word:"
  405. SEND "<wwiv board's password>{"
  406.  
  407.  
  408.    Just replace the information in angle brackets with the appropriate
  409.    information for your setup. The quote characters are required, as are
  410.    the { characters after the login name and password. (The { causes
  411.    the WWIV system to send a carriage return). If the WWIV sysop is
  412.    running a high-speed modem, the following macro may work better.
  413.  
  414. DEBUG ""
  415. TIMEOUT "30"
  416. BAUD "<baud rate to call at>"
  417. DIAL "<phone number of Waffle board>"
  418. FAILURE "BUSY"
  419. SEND "<wwiv board's login name>{"
  420. WAITFOR "word:"
  421. SEND "<wwiv board's password>{"
  422.  
  423.  
  424.    Thanks to Delerium Tremens #1@9704 for this tip. Apparently certain
  425.    protocol negotiations can cause the modem to lose the first few
  426.    characters. If you have trouble, ask the WWIV sysop to check
  427.    WWIVNET.DOC for more information on macros. If you still can't
  428.    figure it out, email me at 1@500 WWIVnet (1-500@wwiv from a system
  429.    running WWCP) and I will help. I will need the phone number of your
  430.    Waffle BBS and the baud rate the WWIV board will use to call. I will
  431.    also an exact representation of your login: and Password: prompts. If
  432.    you are having the WWIV board dial in, you must run wwsmail to batch up
  433.    the messages before sending them. Running it at the start of wwshell
  434.    works, but wastes precious telephone time, and can cause the WWIV system
  435.    to time out if there is a lot of data to batch. I suggest putting wwsmail
  436.    at the top of your run.bat file so it runs before every call. wwsmail is
  437.    fairly speedy when there isn't a whole lot of data to process and
  438.    shouldn't slow down the board reset to any noticeable degree.
  439.  
  440.  
  441. You're set! Your first order of business should be to log in as root or
  442. system and send email to the sysop of your WWIV connect. That will get you
  443. registered in the WWCP nameserver database as account #1 on your node. This
  444. is VERY IMPORTANT, because some WWIVnet informational messages get sent to
  445. the #1 account rather than to individual names. Also, subscribing to netsubs
  446. generally requires sending mail from the #1 account.
  447.  
  448.  
  449.  
  450.        SENDING MAIL TO THE WWIVNET FROM A DIRECTLY CONNECTED WAFFLE
  451.  
  452.  
  453.         WWIVnet addresses are of the form <usernumber>@<nodenumber>. To
  454. send mail to someone on WWIVnet, simply send it to
  455. <usernumber>-<nodenumber>@wwiv. For instance, to send mail to my WWIVnet
  456. account on Someplace Else BBS, 23@9702, you'd send mail to 23-9702@wwiv.
  457. That's all there is to it. All sysops on WWIVnet have an account number of
  458. 1. To send email to the sysop of node 9704, you'd send to 1-9704@wwiv. Of
  459. course, your site must have a direct connection to WWIVnet for this to work,
  460. or know the path to one which does (see below). It is to be hoped that WWIV
  461. will eventually be a registered domain.
  462.  
  463.         You can also send mail to people on WWIVnet by name. However, since
  464. WWIVnet usernames can be several words you must replace any spaces in the
  465. user name with an underscore character (Waffle won't allow sending mail
  466. to multiword usernames). Thus, to send mail to Dark Mistress of Pain on
  467. node 9999, you'd send to:
  468.  
  469. dark_mistress_of_pain-9999@wwiv
  470.  
  471. Case is not important, as WWIVnet mashes everything to upper case anyway.
  472.  
  473.  
  474.  
  475.           SENDING MAIL TO THE WWIVNET FROM NEIGHBORING WAFFLE SITES
  476.  
  477.  
  478.         To support automated routing of mail to the WWIVnet, your
  479. downstream neighbors must have an entry in their system/paths file. For
  480. instance, if your machine is called foobox, your immediate neighbor
  481. (kremvax, say) should put the line:
  482.  
  483. wwiv    foobox!wwiv!%s
  484.  
  485. in his system/paths file. If kremvax feeds another site, moskvax, then
  486. moskvax would use the line:
  487.  
  488. wwiv    kremvax!foobox!%s
  489.  
  490. in his system/paths file, and so on. The neighbor does *not* need a copy
  491. of WWCP for this to work. If your neighbor *is* running WWCP, though,
  492. he won't need to do this, since his system will already know a path to
  493. wwiv.
  494.  
  495.         If you've configured your From: lines to generate a valid
  496. address in WWSTAT, any site on the Usenet should be able to send mail to
  497. WWIVnet, without any special path entries. However, your near neighbors
  498. may still wish to use an entry in system/paths to expedite mail.
  499.  
  500.  
  501.                  SENDING MAIL TO WAFFLE/USENET FROM WWIV
  502.  
  503.         There are two ways to do this.
  504.  
  505. 1. If the Waffle address is user@site, a WWIV user can send email to
  506. <user>#<site>@<nodenum> where nodenum is the node number of your Waffle
  507. system. Just substitute a # for the @ in the Internet address. If your
  508. Waffle system has been assigned node number 19762, and your Waffle system
  509. was named foobar, a WWIV person could contact root on your system by sending
  510. mail to root#foobar@19762 from the main prompt on the WWIV board. This
  511. technique will work whether or not someone on the Waffle side has ever
  512. sent anything to the WWIVnet. WWIV users are not limited to sending
  513. mail to the directly connected Waffle site. They can send mail to any
  514. site that your Waffle knows how to reach. If your Waffle is connected to
  515. the real Internet, a WWIV user could send mail to joeblow@gnu.ai.mit.edu
  516. by sending to joeblow#gnu.ai.mit.edu@19762. Sending mail to
  517. boris%foobox@kremvax.cis.gov would be done by sending to
  518. boris%foobox#kremvax.cis.gov@19762.
  519.  
  520. 2. WWIVnet also uses an alternate address form. The one specified above
  521. is <username>@<node number>. The alternate form is
  522. <user number>@<node number>. This presents problems, since people on the
  523. Waffle side don't *have* WWIV user numbers. The problem can't be ignored
  524. because WWIV automatically uses the <number>@<node> form for all
  525. replies (whether replying to a post or to email). For this reason, every
  526. time someone on the Waffle side posts a message or sends email to the
  527. WWIV side, a database is scanned for his or her name. If it isn't found,
  528. the Waffle address is added to the database and a unique WWIV user number
  529. is assigned for that person. Humans don't need to know what this is because
  530. it's only used by the WWCP routing software. This database may prove useful
  531. for other purposes. See the technical information section at the end of this
  532. document.
  533.  
  534.  
  535.  
  536.                        SUBSCRIBING TO WWIVNET NETSUBS
  537.  
  538.  
  539.         WWIV netsubs are very much like Usenet newsgroups. However, to
  540. receive a netsub you must be added to the subscriber list by the host of
  541. the netsub. In that respect, it's more like a Usenet mailing list. WWIV
  542. netsubs can be hosted by any system on the WWIVnet, including WWCP
  543. sites. The whole system is rather anarchic (somewhat reminiscent of
  544. the Usenet alt.* hierarchy) as far as the creation of new netsubs goes.
  545. There's nothing to prevent a WWIV system from starting a netsub on a
  546. particular topic, even if one (or even several) already exists.
  547. However, posting rules for a netsub are controlled by the sub host.
  548. That means that the rules range from absolute anarchy (no rules) to
  549. complete totalitarianism. The rationale behind this is that if you're
  550. not satisfied with the way the host runs the sub, you're free to start
  551. your own on the same topic. If enough other people feel the way you
  552. do, your sub will succeed and the original one will die.
  553.  
  554.  
  555.         To subscribe, you need to find out who hosts the sub. If there's a
  556. sub carried by your connect (or some other WWIV BBS you call) that you'd
  557. like to subscribe to, ask who the sub host is, send that person
  558. email and ask him to put you on the list. He will need to know your
  559. WWIVnet node number. If you are feeding netsubs to other Waffle/Usenet
  560. sites, you should tell the sub host that (some hosts don't want their
  561. subs gatewayed to other networks). There is also a listing of all available
  562. netsubs sent out periodically. This list should appear in the mailbox for
  563. your postmaster account from time to time. It's sent in several parts.
  564. You can also download a copy from most WWIVnet boards, to use until your
  565. own copy starts coming in.
  566.  
  567.  
  568.         Bear in mind that unless the netsub is being hosted by a local BBS,
  569. *someone* is going to have to pay for a long distance call. If your WWIV
  570. feed is doing it, you should offer to help with the phone bill. If it's
  571. someone else, you should find out who's doing the LD calling and offer
  572. to help that person.
  573.  
  574.  
  575.         Now, you need to set up a couple of things on your system to
  576. receive the sub. In your waffle/system directory, create a file called WWIV.
  577. This works just like the LOCAL and USENET files (remember, you have to add
  578. wwiv to the forums line in your waffle/system/static file for this to work).
  579. Instead of being identified by names (like Usenet newsgroups) WWIV
  580. netsubs are identified by numbers. This number is called the subtype.
  581. The newsgroup name for your waffle system should be wwiv.<subtype>. Use
  582. the following waffle/system/wwiv file as a template for making your own.
  583. You may want to alias the wwiv.<subtype> name to something more
  584. indicative of the sub, as shown here. For instance, History and Moral
  585. Philosophy, subtype 19702, newsgroup wwiv.19702, is dedicated to discussion
  586. of the works of Robert A. Heinlein and the ideas presented therein. To
  587. keep people from having to remember the newsgroup name, it's been aliased
  588. to "heinlein". Typing "heinlein" at the main Waffle prompt will take you
  589. to the newsgroup.
  590.  
  591. # sample WWIV definition file
  592.  
  593. # You need to change the below line to match your system.
  594.  
  595. DEFAULT /dir="C:\WWIVGATE"
  596.  
  597. DEFAULT /type=USENET /keep=100 /post=6
  598.  
  599. wwiv.19714  /name="[Alaska Shareware Authors %N]" /alias=shareware /sig=sig
  600. wwiv.9702  /name="[Ye Olde Alaska Tavern %N]" /alias=alaska /sig=sig
  601. wwiv.19702  /name="[History and Moral Philosophy %N]" /alias=heinlein /sig=sig
  602. wwiv.29702  /name="[Memos from Purgatory %N]" /alias=memos /sig=sig
  603. wwiv.39702  /name="[907 Sysop's Sub %N]" /alias=sysop /sig=sig /post=9 /read=9
  604. wwiv.49702  /name="[Bdexx Discussion %N]" /alias=bdinfo /sig=sig
  605. wwiv.59702  /name="[TDM's Corner Abortion Clinic %N]" /alias=abortion /sig=sig
  606.  
  607. # end of sample
  608.  
  609.  
  610.         Some WWIV netsubs don't like signatures (which they call "taglines").
  611. If you're subscribing to one of these, don't use the /sig parameter.
  612.  
  613.         Now, make a file called NETSUBS in your system directory. This
  614. keeps track of the host system for each netsub. The format of the
  615. system/netsubs file is the netsub name, followed by a space, followed by
  616. the subtype, followed by a space, followed by the sub host's node number.
  617. For instance, Memos from Purgatory (a forum for demented writings) is hosted
  618. by Someplace Else, node number 9702. Memos has a subtype of 29702, so the
  619. line in your system/netsubs file would be:
  620.  
  621. wwiv.29702 29702 9702
  622.  
  623. A complete system/netsubs file corresponding to the above
  624. system/wwiv file might look like:
  625.  
  626. wwiv.19714 19714 9714
  627. wwiv.9702 9702 9702
  628. wwiv.19702 19702 9702
  629. wwiv.29702 29702 9702
  630. wwiv.39702 39702 9702
  631. wwiv.49702 49702 9702
  632. wwiv.59702 59702 9702
  633.  
  634. Note that all the subs in this example are hosted by Someplace Else, node
  635. 9702, except subtype 19714 (Alaska Shareware Authors). 19714 is hosted
  636. by Bilbo's Burrow, node 9714. Using wwiv.* as the newsgroup name is
  637. not required. It can be anything. However, I suggest that you follow
  638. the wwiv.* naming convention for any group which has an actual WWIVnet
  639. origin, especially if you're going to pass them on to other Usenet sites.
  640. Netsubs that you host and Usenet newsgroups that you are gatewaying into
  641. WWIVnet should have an appropriate name. See "Hosting Your Own WWIV
  642. Netsubs", below.
  643.  
  644.  
  645.  
  646.               FEEDING WWIV NETSUBS TO NEIGHBORING WAFFLE SITES
  647.  
  648.         This is easy. As far as Waffle knows, the WWIV netsubs are just
  649. ordinary newsgroups. Set up your system/feeds file to feed wwiv newsgroups
  650. just like any other newsgroup. wwiv.* will feed every wwiv group, wwiv.9702
  651. will only feed one, etc. Your neighbor should also set up his system/feeds
  652. file to feed the same groups back to you. Your neighbor will probably want
  653. to put wwiv in the forums line of his static file, and make a system/wwiv
  654. file like the one above. If he's carrying all of the same ones you do
  655. you can just send him a copy of your system/wwiv file (of course, he'll
  656. need to stick in the proper directory name for his system setup). The
  657. neighbor will *not* need a system/netsubs file, just the system/wwiv
  658. file. The neighbor will *not* need to subscribe to the netsub. To the
  659. WWIVnet, his site looks like part of your node. If you carry it, he
  660. can carry it without subscribing. Conversely, if he wants something you
  661. don't carry he'll either have to convince you to start carrying it or
  662. arrange his own WWIVnet connect. Don't forget to have the neighbor set up
  663. his system/paths file to route email correctly (see "Sending Mail to the
  664. WWIVnet from Neighboring Waffle Sites", above). Your neighbor doesn't
  665. need a copy of WWCP for this to work.
  666.  
  667.  
  668.                        HOSTING YOUR OWN WWIV NETSUBS
  669.  
  670.         Again, the process is fairly straightforward. First, pick a subtype
  671. that hasn't already been used. Traditionally, sub types are numbered
  672. starting with your node number, and going up by 10000 for each additional
  673. sub you host. If your node number is 549, the first sub you host gets
  674. subtype 549, the second 10549, the third 20549, and so on. Check the
  675. most recent subs.lst file to make sure that your subtype number hasn't
  676. already been used. You should mail a description of your new sub to the
  677. maintainer of subs.lst, Tony Johnson #1 @5413 (1-5413@wwiv from your
  678. Waffle system). Now, you need to make a *.sub file in your system/
  679. directory, where * is the subtype of the sub you wish to host (subtype
  680. 10549 would use a 10549.sub file and so on). This file should contain a
  681. list, one per line, of all the subscribing node numbers. Do not include
  682. your own node number. Now, add a line to your system/netsubs file. The
  683. format is the same as shown in  "Subscribing to WWIVnet Netsubs", above.
  684. The sub name, the subtype, and the host's node number (yours, in this case),
  685. all separated by one space. Suppose you want to start a netsub devoted to
  686. Hostess snack cakes. You find that subtype 10549 is available, and decide to
  687. use it. If your node number is 549, the line in your system/netsubs file
  688. would look like:
  689.  
  690. wwiv.10549 10549 549
  691.  
  692. You can also give the sub a different name if you wish. You could call
  693. it alt.religion.twinkies, say, and use the line:
  694.  
  695. alt.religion.twinkies 10549 549
  696.  
  697. in the netsubs file. This technique will also work for feeding normal
  698. Usenet newsgroups into the WWIVnet. If you wanted to feed in comp.lang.c
  699. with a subtype of 35923, you'd use the line:
  700.  
  701. comp.lang.c 35923 549
  702.  
  703. in the system/netsubs file, again assuming that your node number is 549.
  704. Remember to alter your system/feeds file to feed the new newsgroup to
  705. wwiv. You could feed all wwiv.* groups, alt.religion.twinkies, and
  706. comp.lang.c by using something like:
  707.  
  708. wwiv /batch=wwiv wwiv.* alt.religion.twinkies comp.lang.c
  709.  
  710. in the system/feeds file. You'll also need to add the group to your
  711. system/wwiv if it's a new group for you (you won't need to do this
  712. if it's a Usenet group you're already carrying, because it's already
  713. in the system/usenet file). That's it! Everything else is fully automatic.
  714.  
  715. Special note for moderated newsgroups:
  716.  
  717.         A good smarthost will automatically mail posts to a moderated group
  718. to the moderator instead of posting them to the net. However, some
  719. smarthosts are smarter than others. If you are going to be gating a
  720. moderated newsgroup, you need to use a /mod= flag in the system/netsubs
  721. entry for that group. This should be the last thing on the line, after
  722. the group name, the subtype, and the host (which will be you, if you're
  723. doing the gating). Example: you're gating comp.lang.obscene, a moderated
  724. group. The moderator is boris@kremvax. Your node number is 599. You decide
  725. to use a subtype of 10599. The system/netsubs entry would look like:
  726.  
  727. comp.lang.obscene 10599 599 /mod=boris@kremvax
  728.  
  729. This is a NEW FEATURE in release 1.11, and has not been extensively tested.
  730. You are STRONGLY encouraged to test this out on a small scale before
  731. relying on it to work in all cases (that is, if you start gating a moderated
  732. newsgroup to 500 WWIV nodes and it screws up, don't forward the flames to
  733. me. :-). I'd suggest gating it to, at most, one WWIV node to start with
  734. and observe the result. If you experience problems, please contact the
  735. author.
  736.  
  737.  
  738.  
  739.  
  740.                            TECHNOGEEKOID ZONE
  741.  
  742.  
  743.         This section of the documentation is aimed at the technically
  744. inclined Waffle sysop (is there any other kind?). There are three
  745. executables in the WWCP program suite, wwsmail, wwcico, and wwrmail.
  746. wwsmail batches up the messages in WWIV format and creates the outgoing
  747. packet. If a packet already exists, the new messages are appended to
  748. it. Thus, there's no problem with running wwsmail multiple times before
  749. making a connection. This packet is placed in the wwiv/packets
  750. subdirectory of your spool directory, and is named SXXXX.NET, where
  751. XXXX is the node number of your WWIV connect. wwsmail exits with a
  752. status of zero if there is a data packet ready to send, non-zero
  753. otherwise. A zero-length packet is counted as no packet. The program
  754. also exits with status zero if there is a packet from previous invocations,
  755. even if no new data has been added. You can use the exit status in a
  756. batch file to carry out an operation based on whether or not a packet
  757. is ready to send (for instance, make wwpoll not bother to call out if
  758. there's no packet. The supplied wwpoll.bat works this way).
  759.  
  760. WWSMAIL also exits with status zero if there is a file named MAKECALL.DAT
  761. in the spool/wwiv/packets directory, even if there is no packet to send.
  762. This allows you to force a callout by setting up cron to create a
  763. MAKECALL.DAT file periodically (the contents of this file are not
  764. relevant.... only its existence or lack of same is important) or even
  765. creating one manually. WWCICO deletes any MAKECALL.DAT when it makes a
  766. successful connect.
  767.  
  768. For instance, you could use a batch file similar to
  769.  
  770. echo foo >\spool\wwiv\packets\makecall.dat
  771.  
  772. and have cron run it at the time you want to force the call out (say,
  773. after 9:00 PM for low phone rates). Then you could have cron run
  774. wwpoll every half hour. wwpoll will keep trying regardless of whether
  775. there is data to send, until at least one connect has been made. At that
  776. point, the MAKECALL.DAT file will be deleted and wwpoll will resume the
  777. default behavior of not calling unless there is actually data to send.
  778.  
  779.  
  780.         wwcico is the uucico analogue. It handles the modem i/o and
  781. calls the external file transfer protocol as needed. wwcico has two
  782. command line switches. The -d switch puts wwcico in dialout mode and
  783. calls the WWIV board. The -r switch puts wwcico in dialin mode, and is
  784. used when the WWIV board is calling you. These options are similar
  785. to the ones for uucico. wwcico exits with status zero if a packet
  786. has been received from the WWIV board, 1 if there is no connect,
  787. an error occurs, or the operator aborts, and 2 if a connect has been
  788. made but there was no packet to send on the remote node. The incoming
  789. packet is stored with a file name of SXXXX.NET, where XXXX is your WWIV
  790. node number. Incoming packets *must* be processed before the next
  791. invocation of wwcico, because the next incoming packet will have the
  792. same name. The external protocol will either refuse to overwrite
  793. the old packet, or will overwrite it, depending. Either situation
  794. is bad. If the protocol refuses to overwrite, message traffic will be
  795. delayed until the next call (or even later, if the old packet still
  796. hasn't been processed). If the protocol overwrites, messages will be lost.
  797. You should always call wwrmail whenever wwcico exits with a status of zero
  798. (i.e., when an incoming packet has been received). If data has been
  799. transferred successfully, information will be written to a log file called
  800. WWCP in your /admin directory. This file can be viewed with SHOW WWCP in the
  801. usual way. If you have trouble, wwcico can be made to produce debugging
  802. information by using -dx or -rx instead of the normal -d and -r.
  803. This information is also written to admin/wwcp.
  804.  
  805.  
  806.         wwrmail is the program that reads the incoming WWIV packet and
  807. processes the messages into RFC822/1036 compliant form. After processing
  808. each, wwrmail calls rmail or rnews depending on the message type. The
  809. program doesn't create batched news in this release; each message is
  810. processed individually. That will be changed in a future version, if
  811. there is one. WWIVnet produces special control messages from time
  812. to time. In particular, net updates are sent out twice a week. These
  813. updates (analogous to uucp maps) aren't needed by WWCP and are
  814. thrown away. If you see a message being dumped as "WWIVnet control
  815. message or other unknown type" or "Compressed/encrypted message" it's most
  816. likely a net update. Don't worry about it.
  817.  
  818.  
  819.         WWCP uses a special database to handle replies to user numbers.
  820. This database is created and updated automatically, and is found in the
  821. system/wwalpha and system/wwnum files. The wwalpha file is sorted
  822. alphabetically, while the wwnum file is sorted numerically. You should
  823. back up these files periodically, because strange behavior can result
  824. if they get corrupted. For those interested, the wwalpha and wwnum
  825. files are binary files, and the the record structure is
  826.  
  827. struct user {
  828.                 char address[80];
  829.                 int usernumber;
  830.             } thisuser;
  831.  
  832. Possibly the database files could be used for other purposes, with
  833. sufficient ingenuity on your part. One limitation is that a WWIVnet
  834. node (which you are simulating) only supports 32767 unique user numbers.
  835. I plan on having a workaround for this before it becomes a problem.
  836. Contact me if you start approaching the limit.
  837.  
  838.  
  839.